Jackson এর @JsonIgnoreProperties অ্যানোটেশন এবং ObjectMapper কনফিগারেশনের মাধ্যমে আপনি JSON ডেসিরিয়ালাইজেশনের সময় অজানা বা অপ্রত্যাশিত প্রপার্টি উপেক্ষা করতে পারেন। এটি বিশেষভাবে ব্যবহারী যখন JSON ডেটা আপনার Java ক্লাসের সাথে পুরোপুরি মেলে না বা সেখানে অতিরিক্ত ফিল্ড থাকতে পারে।
@JsonIgnoreProperties Annotation
Jackson-এর @JsonIgnoreProperties অ্যানোটেশনটি ক্লাসের উপর প্রয়োগ করা হয় এবং এটি নির্দেশ করে যে কোনো অজানা প্রপার্টি বা অতিরিক্ত ফিল্ড মডেল ক্লাসে ম্যাপ না করেই উপেক্ষা করতে হবে।
@JsonIgnoreProperties এর ব্যবহার
উদাহরণ 1: @JsonIgnoreProperties Annotation
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class User {
private int id;
private String name;
// Getters and Setters
}
Serialization Example:
import com.fasterxml.jackson.databind.ObjectMapper;
public class IgnoreUnknownPropertiesExample {
public static void main(String[] args) throws Exception {
String json = "{\"id\": 1, \"name\": \"Rahim\", \"extraField\": \"extraValue\"}";
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(json, User.class);
System.out.println("ID: " + user.getId());
System.out.println("Name: " + user.getName());
}
}
Explanation:
@JsonIgnoreProperties(ignoreUnknown = true)অ্যাপ্লিকেশনটি বলে যে JSON ডেটাতে যদি কোনো অতিরিক্ত বা অজানা ফিল্ড থাকে, তবে তা উপেক্ষা করা হবে এবং ডেসিরিয়ালাইজেশন প্রক্রিয়া চালু থাকবে।- উপরের উদাহরণে
extraFieldনামক ফিল্ডটিUserক্লাসের মধ্যে উপস্থিত না থাকলেও,ObjectMapperসেই ফিল্ডটিকে উপেক্ষা করে ডেসিরিয়ালাইজ করবে।
JSON Output:
{
"ID": 1,
"Name": "Rahim"
}
ObjectMapper-এ FAIL_ON_UNKNOWN_PROPERTIES সেটিং ব্যবহার
এছাড়া আপনি ObjectMapper কনফিগারেশন ব্যবহার করে global ভাবে অজানা প্রপার্টি উপেক্ষা করতে পারেন।
উদাহরণ 2: FAIL_ON_UNKNOWN_PROPERTIES ব্যবহার
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.DeserializationFeature;
public class ObjectMapperIgnoreUnknownPropertiesExample {
public static void main(String[] args) throws Exception {
String json = "{\"id\": 1, \"name\": \"Rahim\", \"extraField\": \"extraValue\"}";
// Create ObjectMapper and configure to ignore unknown properties globally
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
User user = mapper.readValue(json, User.class);
System.out.println("ID: " + user.getId());
System.out.println("Name: " + user.getName());
}
}
Explanation:
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)এই কনফিগারেশনটি নিশ্চিত করে যে JSON ডেটায় যদি কোনো অজানা প্রপার্টি থাকে, তবে তা ডেসিরিয়ালাইজেশনে বাধা সৃষ্টি করবে না, এবং এগুলি উপেক্ষা করা হবে।
JSON Output:
{
"ID": 1,
"Name": "Rahim"
}
@JsonIgnoreProperties এবং ObjectMapper কনফিগারেশন ব্যবহারের মধ্যে পার্থক্য
| পদ্ধতি | বর্ণনা |
|---|---|
@JsonIgnoreProperties | একটি ক্লাসের মধ্যে অজানা প্রপার্টি উপেক্ষা করতে ব্যবহৃত হয়, এটি শুধুমাত্র ঐ ক্লাসের জন্য কার্যকর। |
ObjectMapper কনফিগারেশন | পুরো প্রজেক্টে বা অ্যাপ্লিকেশনে অজানা প্রপার্টি উপেক্ষা করতে ব্যবহার করা হয়। |
@JsonIgnore এবং @JsonIgnoreProperties এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | @JsonIgnore | @JsonIgnoreProperties |
|---|---|---|
| ফোকাস | একটি ফিল্ড বা প্রপার্টি Serialization/Deserialization থেকে বাদ দেওয়া। | ক্লাসের ভিতরের সব ফিল্ড বা একাধিক অজানা ফিল্ড Serialization/Deserialization থেকে বাদ দেওয়া। |
| ব্যবহার | শুধুমাত্র একটি নির্দিষ্ট ফিল্ডের ক্ষেত্রে। | একটি ক্লাসের জন্য সব অজানা প্রপার্টি উপেক্ষা করতে। |
@JsonIgnoreProperties(ignoreUnknown = true)এবংObjectMapperএরFAIL_ON_UNKNOWN_PROPERTIESব্যবহার করে JSON ডেটার অজানা ফিল্ড গুলোকে উপেক্ষা করা যেতে পারে।- যখন আপনার JSON ডেটায় অতিরিক্ত বা অপ্রত্যাশিত প্রপার্টি থাকে, তখন এটি বিশেষভাবে উপকারী, এবং এতে ডেসিরিয়ালাইজেশন ফেইল হওয়া এড়ানো যায়।
- এই পদ্ধতিগুলো ব্যবহার করলে আপনি আপনার JSON প্রসেসিং আরও নমনীয় ও robust করতে পারবেন।
Content added By
Read more